A SSD (Solid State Drive) is used as a storage device using a semiconductor memory instead of a disk drive using a hard disk in the related art. In an SSD, a NAND-type flash memory is often used, but there is a problem in that, when data are erased from the NAND-type flash memory, data are erased in a unit of block constituted by multiple pages, and therefore, it takes some time to rewrite the page unit. Therefore, a data storage device having a flash memory and a resistance random access memory has been suggested (for example, see PTL 1). In this data storage device, writing data are once written to a resistance random access memory, and every time one page of data and error correction symbols are stored, control is performed to store the symbolized data to a flash memory.